package com.operator.Activitys.fragment;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;

import com.operator.Activitys.R;
import com.operator.Activitys.bean.User;
import com.operator.Activitys.fragment.base.BaseFragment;
import com.zhy.autolayout.AutoRelativeLayout;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.ThreadLocalRandom;

import butterknife.Bind;
import ezy.ui.layout.LoadingLayout;

/**
 * 项目名称：金泽云 手机app
 * 类描述：缴费充值页面
 * 创建人：张飞祥
 * 创建时间：2018/4/27 14:29
 * 修改人：张飞祥
 * 修改时间：2018/4/27 14:29
 * 修改备注：
 */
public class RechargeFragment extends BaseFragment {

    //标题 总布局
    @Bind(R.id.app_bar_layout)
    AutoRelativeLayout appBarLayout;
    //标题
    @Bind(R.id.tv_title)
    TextView tvTitle;
    //webView
    @Bind(R.id.wv_web_date)
    WebView wvDate;
    //网页加载进度
    @Bind(R.id.web_loading)
    LoadingLayout webLoading;

    //内存中用户实体
    protected User mACacheUser = null;
    //获取openId
    private String mOpenId = "";

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void initViews() {
        //设置标题
        tvTitle.setText("缴费充值");
        //设置标题背景
        appBarLayout.setBackgroundResource(R.color.color_bg_blue);
        //初始化 WebView
        iniWebDeploy();
        //加载网页
        loadUrl();
    }

    /**
     * 初始化 webView 设置
     */
    private void iniWebDeploy() {
        //声明WebSettings子类
        WebSettings webSettings = wvDate.getSettings();

        //如果访问的页面中要与Javascript交互，则webview必须设置支持Javascript
        webSettings.setJavaScriptEnabled(true);

        //设置自适应屏幕，两者合用
        webSettings.setUseWideViewPort(true);                           //将图片调整到适合webview的大小
        webSettings.setLoadWithOverviewMode(true);                      // 缩放至屏幕的大小

        //缩放操作
        webSettings.setSupportZoom(true);                               //支持缩放，默认为true。是下面那个的前提。
        webSettings.setBuiltInZoomControls(true);                       //设置内置的缩放控件。若为false，则该WebView不可缩放
        webSettings.setDisplayZoomControls(false);                      //隐藏原生的缩放控件

        //其他细节操作
        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);  //关闭webview中缓存
        webSettings.setAllowFileAccess(true);                           //设置可以访问文件
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);     //支持通过JS打开新窗口
        webSettings.setLoadsImagesAutomatically(true);                  //支持自动加载图片
        webSettings.setDefaultTextEncodingName("utf-8");                //设置编码格式

        //复写shouldOverrideUrlLoading()方法，使得打开网页时不调用系统浏览器， 而是在本WebView中显示
        wvDate.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                try{
                    if(url.startsWith("alipays://")){
                        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                        startActivity(intent);
                        return true;
                    }
                }catch (Exception e){
                    return false;
                }
                view.loadUrl(url);
                return true;
            }
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                //TODO View 非空判断
                if (webLoading != null){
                    webLoading.showContent();
                }
            }
        });

        /**
         *  WebView 在fragment中返回上一页,退出.
         */
        wvDate.setOnKeyListener(new View.OnKeyListener() {
            @SuppressLint("NewApi")
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if(keyCode==KeyEvent.KEYCODE_BACK&&event.getRepeatCount()==0){
                    if (wvDate!=null&&wvDate.canGoBack()){
                        //刷新页面
                        loadUrl();
                        return true;
                    }
                }
                return false;
            }
        });
    }

    /**
     * 加载网页
     */
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    private void loadUrl() {
        //产生个随机数
        ThreadLocalRandom threadLocalRandom = ThreadLocalRandom.current();
        int number = threadLocalRandom.nextInt(1, 200);//获取[1,200)的随机整数
        //获取当前时间
        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
        //拼接最新的 随机数
        mOpenId = formatter.format(date)+number;
        //加载数据
        wvDate.loadUrl("http://api.bjzc.ejiaofei.cn/entry?memberId=M0243&openId="+mOpenId);
    }

    @Override
    protected int getContentViewId() {
        return R.layout.frg_recharge;
    }
}
